package com.example.victory.swagger.model;

import java.util.Objects;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import java.util.ArrayList;
import java.util.List;
import org.springframework.validation.annotation.Validated;
import javax.validation.Valid;

/**
 * ApiResponseGetStaffSalaryInfoData
 */
@Validated
@javax.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2021-04-26T10:50:39.083+08:00")

public class ApiResponseGetStaffSalaryInfoData   {
  @JsonProperty("queryDate")
  private Integer queryDate = null;

  @JsonProperty("targetInfo")
  @Valid
  private List<TargetInfo> targetInfo = null;

  @JsonProperty("mySalary")
  private String mySalary = null;

  @JsonProperty("salaryInfo")
  @Valid
  private List<KeyValueDetail> salaryInfo = null;

  @JsonProperty("coreAssessItems")
  @Valid
  private List<CoreAssessItems> coreAssessItems = null;

  @JsonProperty("assessAddOrSubPoint")
  @Valid
  private List<AssessAddOrSubPoint> assessAddOrSubPoint = null;

  public ApiResponseGetStaffSalaryInfoData queryDate(Integer queryDate) {
    this.queryDate = queryDate;
    return this;
  }

  /**
   * 查询的月份
   * @return queryDate
  **/
  @ApiModelProperty(example = "201901", value = "查询的月份")


  public Integer getQueryDate() {
    return queryDate;
  }

  public void setQueryDate(Integer queryDate) {
    this.queryDate = queryDate;
  }

  public ApiResponseGetStaffSalaryInfoData targetInfo(List<TargetInfo> targetInfo) {
    this.targetInfo = targetInfo;
    return this;
  }

  public ApiResponseGetStaffSalaryInfoData addTargetInfoItem(TargetInfo targetInfoItem) {
    if (this.targetInfo == null) {
      this.targetInfo = new ArrayList<TargetInfo>();
    }
    this.targetInfo.add(targetInfoItem);
    return this;
  }

  /**
   * 目标完成情况
   * @return targetInfo
  **/
  @ApiModelProperty(value = "目标完成情况")

  @Valid

  public List<TargetInfo> getTargetInfo() {
    return targetInfo;
  }

  public void setTargetInfo(List<TargetInfo> targetInfo) {
    this.targetInfo = targetInfo;
  }

  public ApiResponseGetStaffSalaryInfoData mySalary(String mySalary) {
    this.mySalary = mySalary;
    return this;
  }

  /**
   * 应发工资
   * @return mySalary
  **/
  @ApiModelProperty(example = "10000", value = "应发工资")


  public String getMySalary() {
    return mySalary;
  }

  public void setMySalary(String mySalary) {
    this.mySalary = mySalary;
  }

  public ApiResponseGetStaffSalaryInfoData salaryInfo(List<KeyValueDetail> salaryInfo) {
    this.salaryInfo = salaryInfo;
    return this;
  }

  public ApiResponseGetStaffSalaryInfoData addSalaryInfoItem(KeyValueDetail salaryInfoItem) {
    if (this.salaryInfo == null) {
      this.salaryInfo = new ArrayList<KeyValueDetail>();
    }
    this.salaryInfo.add(salaryInfoItem);
    return this;
  }

  /**
   * 我的薪酬
   * @return salaryInfo
  **/
  @ApiModelProperty(value = "我的薪酬")

  @Valid

  public List<KeyValueDetail> getSalaryInfo() {
    return salaryInfo;
  }

  public void setSalaryInfo(List<KeyValueDetail> salaryInfo) {
    this.salaryInfo = salaryInfo;
  }

  public ApiResponseGetStaffSalaryInfoData coreAssessItems(List<CoreAssessItems> coreAssessItems) {
    this.coreAssessItems = coreAssessItems;
    return this;
  }

  public ApiResponseGetStaffSalaryInfoData addCoreAssessItemsItem(CoreAssessItems coreAssessItemsItem) {
    if (this.coreAssessItems == null) {
      this.coreAssessItems = new ArrayList<CoreAssessItems>();
    }
    this.coreAssessItems.add(coreAssessItemsItem);
    return this;
  }

  /**
   * 核心考核项
   * @return coreAssessItems
  **/
  @ApiModelProperty(value = "核心考核项")

  @Valid

  public List<CoreAssessItems> getCoreAssessItems() {
    return coreAssessItems;
  }

  public void setCoreAssessItems(List<CoreAssessItems> coreAssessItems) {
    this.coreAssessItems = coreAssessItems;
  }

  public ApiResponseGetStaffSalaryInfoData assessAddOrSubPoint(List<AssessAddOrSubPoint> assessAddOrSubPoint) {
    this.assessAddOrSubPoint = assessAddOrSubPoint;
    return this;
  }

  public ApiResponseGetStaffSalaryInfoData addAssessAddOrSubPointItem(AssessAddOrSubPoint assessAddOrSubPointItem) {
    if (this.assessAddOrSubPoint == null) {
      this.assessAddOrSubPoint = new ArrayList<AssessAddOrSubPoint>();
    }
    this.assessAddOrSubPoint.add(assessAddOrSubPointItem);
    return this;
  }

  /**
   * 考核加减分
   * @return assessAddOrSubPoint
  **/
  @ApiModelProperty(value = "考核加减分")

  @Valid

  public List<AssessAddOrSubPoint> getAssessAddOrSubPoint() {
    return assessAddOrSubPoint;
  }

  public void setAssessAddOrSubPoint(List<AssessAddOrSubPoint> assessAddOrSubPoint) {
    this.assessAddOrSubPoint = assessAddOrSubPoint;
  }


  @Override
  public boolean equals(java.lang.Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    ApiResponseGetStaffSalaryInfoData apiResponseGetStaffSalaryInfoData = (ApiResponseGetStaffSalaryInfoData) o;
    return Objects.equals(this.queryDate, apiResponseGetStaffSalaryInfoData.queryDate) &&
        Objects.equals(this.targetInfo, apiResponseGetStaffSalaryInfoData.targetInfo) &&
        Objects.equals(this.mySalary, apiResponseGetStaffSalaryInfoData.mySalary) &&
        Objects.equals(this.salaryInfo, apiResponseGetStaffSalaryInfoData.salaryInfo) &&
        Objects.equals(this.coreAssessItems, apiResponseGetStaffSalaryInfoData.coreAssessItems) &&
        Objects.equals(this.assessAddOrSubPoint, apiResponseGetStaffSalaryInfoData.assessAddOrSubPoint);
  }

  @Override
  public int hashCode() {
    return Objects.hash(queryDate, targetInfo, mySalary, salaryInfo, coreAssessItems, assessAddOrSubPoint);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class ApiResponseGetStaffSalaryInfoData {\n");
    
    sb.append("    queryDate: ").append(toIndentedString(queryDate)).append("\n");
    sb.append("    targetInfo: ").append(toIndentedString(targetInfo)).append("\n");
    sb.append("    mySalary: ").append(toIndentedString(mySalary)).append("\n");
    sb.append("    salaryInfo: ").append(toIndentedString(salaryInfo)).append("\n");
    sb.append("    coreAssessItems: ").append(toIndentedString(coreAssessItems)).append("\n");
    sb.append("    assessAddOrSubPoint: ").append(toIndentedString(assessAddOrSubPoint)).append("\n");
    sb.append("}");
    return sb.toString();
  }

  /**
   * Convert the given object to string with each line indented by 4 spaces
   * (except the first line).
   */
  private String toIndentedString(java.lang.Object o) {
    if (o == null) {
      return "null";
    }
    return o.toString().replace("\n", "\n    ");
  }
}

